package com.hvgroup.modules.sanic.domain.dto;

import com.hvgroup.base.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * 知识库 DTO（用于前后端传输、接口响应等场景）
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class LlmDatasetDto extends BaseDTO implements Serializable {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 知识库唯一标识（业务ID）
     */
    private String datasetsId;

    /**
     * 知识库名称
     */
    private String name;

    /**
     * 知识库模式（如：向量模式、摘要模式等）
     */
    private Integer mode;

    /**
     * 状态（0=禁用，1=启用）
     */
    private Integer state;

    /**
     * 是否启用对外 API 接口
     */
    private Boolean enableApi;

    /**
     * 知识库的 API 访问 Token
     */
    private String apiToken;

    /**
     * API 类型（自定义平台定义，如 REST、RPC 等）
     */
    private Integer apiType;

    /**
     * 访问密钥（通常与 API Token 配合使用）
     */
    private String accessToken;

    /**
     * 知识库描述信息
     */
    private String description;

    /**
     * 文档上传所需模板ID（下载时使用）
     */
    private String docTmplId;

    /**
     * 存储资源类型（例如：MinIO, S3, 本地）
     */
    private Integer resourceType;

    /**
     * 存储资源地址（例如：桶路径、目录路径）
     */
    private String resourceAddress;

    /**
     * 资源访问Key（例如：AK）
     */
    private String resourceAk;

    /**
     * 资源访问密钥（例如：SK）
     */
    private String resourceSk;

    /**
     * 所属大模型平台用户ID
     */
    private String llmUserId;

    /**
     * 所属大模型平台用户名
     */
    private String llmUserName;

    /**
     * 最后修改人ID（平台侧）
     */
    private String llmUpdateId;

    /**
     * 最后修改人用户名（平台侧）
     */
    private String llmUpdateName;

    /**
     * 模型类型（如：openai、glm、qwen 等）
     */
    private Integer llmType;
}
